package com.coderg.gmall.cart.service;

import com.coderg.gmall.model.cart.CartInfo;

import java.util.List;
import java.util.Map;

/**
 * @Description
 * @Author CoderG
 * @Date 2025/6/2 15:19
 **/
public interface CartService {

    /**
     * 添加购物车
     * @param skuId
     * @param goodsNumber
     */
    void addCart(Long skuId ,Long goodsNumber);

    /**
     * 查询购物车
     * @return
     */
    List<CartInfo> getCarts();


    /**
     * 修改购物车
     * @param cartId
     * @param goodsNumber
     */
    void updateCart(Long cartId ,Long goodsNumber);

    /**
     * 删除购物车
     * @param cartId
     */
    void deleteCart(Long cartId);
    /**
     * 选中或者取消选中，全选或者全不选
     * @param cartId
     * @param status
     */
    void checkOrNo(Long cartId,short status);



    /**
     * 合并购物车   触发时机登录的时候通过mq触发合并
     *
     * @param cartInfos
     */
     void combineCart(List<CartInfo> cartInfos);

    /**
     * 获取订单确认信息  实际上就是已经选中的购物车信息 计算总价格
     */
    Map getOrderConfirmInfo();
    /**
     * 清空购物车
     * @return
     */
    Boolean clearCarts();

}
